from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage,SystemMessage
from langchain_core.prompts import (ChatPromptTemplate,SystemMessagePromptTemplate,HumanMessagePromptTemplate)


#模型
mode = ChatOpenAI(model_name="qwen-plus",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key="sk-4f1498f1c0314ba79ea2919bd7a02c4d",
    temperature=0.7
)

#案例1
# messages = [
#     SystemMessage(content="你是一个翻译专家,你需要将文本翻译成英文；不需要回答问题，只需要翻译用户的输入即可"),
#     HumanMessage(content="你好，如何成为一个高级程序员。")
# ]
#
# #调用
# response = mode.invoke(messages)
# print(response.content)

#案例2
# system_template = SystemMessagePromptTemplate.from_template(
#     "你是一个专业的{domain}专业,回答满足：{style_guide}"
# )
# #定义用户消息
# human_template = HumanMessagePromptTemplate.from_template(
#     "请解释:{concept}"
# )
#
# #组合多个消息
# chat_prompt = ChatPromptTemplate.from_messages([system_template, human_template])
# messages = chat_prompt.format(
#     domain="计算机科学",
#     style_guide="简单",
#     concept ="机器学习"
# )
# response = mode.invoke(messages)
# print(response)

#案例3
compliance_template = ChatPromptTemplate.from_messages([
    ("system","""您是{company}客服助手，遵守:
    1.不透露内部系统名称
    2.不能提供医疗/金融建议
    3.遇到{transfer_cond}转人工"""),
    ("human","[{user_level}用户]:{query}")
])

messages = compliance_template.format(
    company="微软",
    transfer_cond="用户反馈问题无法解决或者支付的问题",
    user_level="高级",
    query = "你好，如何升级系统？"
)

response = mode.invoke(messages)
print(response.content)